package LeetCode刷题;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-10-14 14:04
 * @description: Functions of this class is
 * 民间题解：（DFS回溯法）
 * class Solution {
 *     public boolean exist(char[][] board, String word) {
 *         if(word==null||word.length()==0){
 *             return false;
 *         }
 *         int len=word.length();
 *         char c[]=word.toCharArray();
 *         int len1=board.length;
 *         int len2=board[0].length;
 *         //使用dfs方法
 *         for(int i=0;i<len1;i++){
 *             for(int j=0;j<len2;j++){
 *                 if(judge(c,0,len,board,i,j,len1,len2)){
 *                     return true;
 *                 }
 *             }
 *         }
 *         return false;
 *     }
 *     public boolean judge(char c[],int index,int right,char board[][],int i,int j,int len1,int len2){
 *         //要先判断假！
 *         if(i<0||i>=len1||j<0||j>=len2||c[index]!=board[i][j]){//如果不相等的话就没有比较的意义了
 *             return false;
 *         }
 *         else if(index==right-1){
 *             return true;//如果到了最后一个字符都比较相等的话，就返回为真
 *         }
 *         //否则相等且没到最后一个字符的话
 *         board[i][j]='X';//标记一下说明当前字符在当前序列寻找中找过了
 *         boolean flag=judge(c,index+1,right,board,i+1,j,len1,len2)||judge(c,index+1,right,board,i-1,j,len1,len2)||
 *         judge(c,index+1,right,board,i,j+1,len1,len2)||judge(c,index+1,right,board,i,j-1,len1,len2);
 *
 *         board[i][j]=c[index];//因为回溯前其前面的元素肯定是和字符串中的相等的，所以回溯时赋值与其之前的元素，后面有可能会再次用到
 *         return flag;
 *     }
 * }
 **/
public class NoNoDFS单词搜索or矩阵中的路径 {
    public static void main(String[] args) {
        String word="fdfsdfsadf";
    }
}